Exercício 12-07:

Escreva um programa que valide a entrada de dados do usuário. O programa deve aceitar números de CPF no seguinte formato: 999.999.999-99, em que cada 9 representa um dígito. Exija os pontos e o traço no final, verificando a correta quantidade de dígitos.

Resposta:

##############################################################################
# Parte do livro Introdução à Programação com Python
# Autor: Nilo Ney Coutinho Menezes
# Editora Novatec (c) 2010-2024
# Quarta Edição - Março/2024 - ISBN 978-85-7522-886-9
#
# Site: https://python.nilo.pro.br/
#
# Arquivo: capitulo 12/exercicio-12-07.py
##############################################################################
# Verifica se entrada é um CPF válido, ou seja:
# Uma sequência no formato 999.999.999-99
# Esta função não faz validação de dígito verificador
import re

CPF_RE = r"^\d{3}\.\d{3}\.\d{3}-\d{2}$"


def cpf(entrada):
    return bool(re.match(CPF_RE, entrada))


entradas = [
    "123.456.789-01",  # Sim
    "123456.789-01",  # Não
    "123.456.78901",  # Não
    "23.456.789-01",  # Não
    "123.456.78-01",  # Não
    "999.999.999-99",  # Sim
]

for entrada in entradas:
    print(f"{entrada}: é um CPF? {'Sim' if cpf(entrada) else 'Não'}")
Clique aqui para baixar o arquivo